The present invention generally relates to network management. The invention relates more specifically to a method and template for developing device-centric network management applications using server processes on the network.
A network consists of several computing devices connected by certain types of cables in a certain architecture and communicating using a certain protocol. An internetwork, like the Internet or a telecommunications private branch exchange (PBX), involves the connection of various networks to each other using one or more networking devices, such as repeaters, switches, bridges, routers and gateways, to make optimum use of available bandwidth and to convert as necessary from one protocol to another. Bandwidth is a measure of potential throughput on a cable, measured, for example, in megabits per second.
Some of these network devices involve programmable processors with corresponding software instruction sets to control operations of the processors. Many of these devices execute a network operating system for controlling the functionality of the device. For example, devices manufactured by Cisco Systems, Inc. operate under control of the Cisco Internetworking Operating System (IOS). Some may include one or more applications programs to provide certain functions.
Network management involves, in part, tracking the topology of the connections between network devices at nodes of the network, configuring the network devices to perform the various functions needed at each node, and checking on the status of the network devices at the nodes at regular times or in response to a request. Often, a computer on a control network connecting the network devices provides centralized network management using a network administration application interacting with the network operating system on the various devices. The controlling network may be the same as the network, as on the Internet. In some circumstances, the controlling network with the central network management computer is a separate network. For example, in an IPX network, the network controlling the network devices is separate from the telecommunications network controlled by the network devices.
Networks are often used to connect relatively inexpensive, low computing power devices, such as personal computer (PC) laptops and handheld devices that run relatively thin client processes, with high powered server devices that run a large number of server processes. A client process sends a message requesting a computing resource to a server process executing on a different device on the network. The server process then provides the requested resource, returning a result, if any, in a response message.
Computer resources include one or more printers or other peripheral devices, data files, or program files, for example. World Wide Web (WWW) browsers are examples of a standard client process communicating using hypertext transfer protocol (HTTP) for resources in the form of Web pages written in HyperText Markup Language (HTML). A great number of Web pages have been developed and are currently available on the Internet. The browsers allow text, graphic, and multi-media information to be received from one or more servers and to be displayed on the PC or other computer executing the browser. Extra functions such as dialog boxes for obtaining user input and performing client-side data validation, and other dynamically generated pages, are provided by programs sent to the browser and launched by the browser. These programs include Java(copyright) bytecode for execution by a Java virtual machine installed on the client device, and programs written in a scripting language and launched through Common Gateway Interface (CGI).
To provide network administrators with greater access to network management functions, for example, while traveling with a laptop computer, it is desirable to allow a network administrator to perform network management using a standard Web browser with some client-side scripts. Traditionally, such network management applications are developed using Java or a scripting language with CGI on various devices running the UNIX operating system.
With the release of the Windows 2000 operating system, the Microsoft Internet Information Server (IIS) provides an alternative platform on which to develop applications for access via a Web browser. This platform utilizes a directory system called Active Directory, a database access layer comprising Active Data Objects (ADO), and a scripting language called Active Server Pages (ASP). However, the recent introduction of this platform, compared to UNIX platforms, means that network management tools are not available for developing network management applications on Windows 2000.
In particular, it is desirable to make network management applications device-centric. That is, it is desirable to query and obtain device state information directly from the devices on the network, rather than query a centralized database that may be between updates at the time the database is queried. In addition, it is desirable to respond to events originating in the devices, such as operational errors, as well as to requests originated by the client process. Since ASP is commonly used with ADO in database-centric applications, extra effort is required to develop the code to support device-centric interactions. Since ASP is based on client-generated requests, extra effort is required to develop the code to support device-generated events.
Furthermore, ASP is designed for the Windows operating system. This allows the resulting scripts to run efficiently on the Windows platform, requiring less memory size and central processing unit (CPU) clock time than platform independent code like Java. However, an approach that relies on ASP is not moved to another platform as readily as Java.
Therefore, it is desirable to re-use as much code from one ASP application as possible in a different ASP application. This allows new, efficient platform-dependent applications to be developed more quickly than without re-usable code. However, since ASP is not an object-oriented language, like C++ or Java, ASP does not provide built-in encapsulation or inheritance. In object-oriented languages, the features of encapsulation enhance the reusability and reduce the interdependencies of the produced code.
Based on the foregoing, there is a clear need for techniques to increase the usefulness of platform dependent scripts, like ASP, in applications for Web-based, device-centric network management.
The foregoing needs, and other needs and objects that will become apparent for the following description, are achieved in the present invention, which comprises, in one aspect, a software template for developing a platform-dependent network management Web resource.
A computer platform includes one or more processors and an operating system. The template includes one or more sequences of statements of a platform-dependent scripting language. The statements are processed by a Web server executing on the platform. The statements cause the Web server to define a plurality of standard management methods and call at least a first standard management method. The statements also cause the Web server to define page level variables for holding in memory values used as parameters for the standard management methods. The template also includes a place to insert application-specific statements for presenting network information to a Web-based client process and for receiving input from the Web-based client process.
In another aspect, a method of developing a platform-dependent, Web-based, device-centric network management server includes creating and storing a collection of network device-centric methods in binary modules that are registered with a standard binary interface. The collection is assembled on a platform for controlling a network comprising a hierarchy of network devices. Also assembled on the platform is the template including statements in a platform-dependent scripting language. The statements provide standard management methods, at least one based on the standard binary interface to generate instances of the collection of network device-centric methods. The statements also provide page level variables for holding in memory values used as parameters for the standard binary interface. The template includes a place to insert application specific statements into the Web resource for presenting network information to a Web-based client process and for receiving input from the Web-based client process. The template is then presented to a developer for generating and inserting the application specific statements into the Web resource. The resulting Web resource is stored on the platform connected to the network, for access by a Web server on the platform in response to a request from the Web-based client process on the network.
In another aspect of the invention, a method of developing a platform-dependent, Web-based, device-centric network management server includes retrieving a template for a Web resource. The template includes statements in a platform-dependent scripting language. The statements provide standard management methods. At least one of the standard management methods is based on a platform-dependent standard binary interface to generate instances of a collection of network device-centric methods stored as binary modules. The statements also provide page level variables for holding in memory values used as parameters for the standard binary interface. Application-specific statements are generated by the developer and inserted into the Web resource. The statements also provide a place to insert application-specific statements into the Web resource for presenting network information to a Web-based client process and for receiving input from the Web-based client process. The resulting Web resource is stored on a platform associated with the platform-dependent scripting language, standard binary interface and binary modules. The platform is connected to a network comprising a hierarchy of network devices. The resulting Web resource is for access by a Web server on the platform in response to a request from a Web-based client process on the network.
In another aspect, a network management page for sending to a Web-based client process from a Web based server incorporates a form having a plurality of input fields and a submit button. The form is associated with either a first submit method or a second submit method. The first submit method is for obtaining information about a state of a particular network device. The second submit method is for changing the state of a particular network device. The page is sent to the client process. In response to activation of the submit button in the client process, routines are executed to operate on the particular network device based on which submit method was associated with the form. Using these techniques, a single set of input fields can be designed for both displaying and editing the state of network devices.
In other aspects, the invention encompasses a computer system and an apparatus configured to carry out the foregoing steps.